package com.teach.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.teach.dto.LoginUser;
import com.teach.dto.UserRegFormDTO;
import com.teach.dto.UserSearch;
import com.teach.entity.UserInfo;
import com.teach.exception.CodeException;

public interface UserService {
	
	/**
	 * 用户注册
	 * @param form
	 */
	void reg(UserRegFormDTO form);
	
	/**
	 * 
	 * @param userName
	 * @param userPwd
	 * @return LoginUser
	 * @throws CodeException 1|2|3|7
	 */
	LoginUser login(String userName,String userPwd)throws CodeException;
	
	
	/**
	 * 获取用户级别信息
	 * @param userName
	 * @return
	 */
	UserInfo get(String userName);
	
	/**
	 * 修改密码
	 * @param userName
	 * @param userPwd
	 */
	void modify(String userName,String userPwd);
	
	/**
	 * 修改密码
	 * @param userName
	 * @param newUserPwd
	 * @param oldUserPwd
	 */
	void modify(String userName,String newUserPwd,String oldUserPwd);
	
	/**
	 * 修改用户信息
	 */
	void modify(UserInfo user);
	
	/**
	 * 用户名是否存在
	 * @param userName
	 * @return
	 */
	Boolean existsUserName(String userName);
	
	/**
	 * 手机号码是否存在
	 * @param userTel
	 * @return
	 */
	Boolean existsUserTel(String userTel);
	
	/**
	 * 根据条件搜索用户
	 * 可以是某页数据
	 * @param search
	 * @return
	 */
	List<UserInfo> list(UserSearch search);
	
	/**
	 * 根据条件搜索用户的分页数据
	 * @param search
	 * @return
	 */
	PageInfo<UserInfo> page(UserSearch search);
	
	/**
	 * 查询所有用户
	 * @return
	 */
	List<UserInfo> selectAll();
}
